Given the prevalence of multi-node computing systems that implement distributed software systems, there are a number of solutions for ensuring the forward and backward compatibility of these distributed software system. Issues of forward and backward compatibility most often arise when one wants to perform code upgrades while such systems are on-line. Forward compatibility allows an old node to handle interactions with a node that has already been upgraded. Backward compatibility ensures that a newly upgraded or updated node can handle interactions with old nodes. Achieving backward compatibility is a well-understood process that can be exemplified by how new word processors are able to read documents written with old versions of the same word-processing software. Example of (partial) solutions for ensuring forward (and backward) compatibility include GOOGLE™ Protocol Buffers, and the W3C™ standard Simple Object Access Protocol (SOAP) that implements a “mustUnderstand” header attribute. A further example solution includes the deployment, in parallel, of two or more complete and isolated multi-node computing systems, where one system executes the updated distributed software system and a second system that executes a legacy distributed software system.